package com.example.onlineanswer.model.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.validation.constraints.Future;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.time.LocalDateTime;

/**
 * 竞赛创建DTO
 */
@Data
public class ContestCreateDTO {

    /**
     * 竞赛标题
     */
    @NotBlank(message = "竞赛标题不能为空")
    @Size(min = 2, max = 100, message = "竞赛标题长度应在2-100字符之间")
    private String title;

    /**
     * 竞赛描述
     */
    @NotBlank(message = "竞赛描述不能为空")
    @Size(max = 2000, message = "竞赛描述最多2000字符")
    private String description;

    /**
     * 封面图片URL
     */
    private String coverImage;

    /**
     * 开始时间
     */
    @NotNull(message = "开始时间不能为空")
    @Future(message = "开始时间必须是未来时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime startTime;

    /**
     * 结束时间
     */
    @NotNull(message = "结束时间不能为空")
    @Future(message = "结束时间必须是未来时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime endTime;

    /**
     * 参与人数限制（null表示无限制）
     */
    private Integer participantLimit;

    /**
     * 是否启用证书（0：不启用，1：启用）
     */
    private Boolean certificateEnabled = false;

    /**
     * 颁发证书数量（前几名）
     */
    private Integer certificateCount = 3;
} 